export class ResDataModel{

  private _datas:any[];

  constructor(datas) {
    this._datas = datas;
  }

  get datas(): any[] {
    return this._datas;
  }

  set datas(value: any[]) {
    this._datas = value;
  }

  /**
   * 获取单独的属性值（对应Sowrd中的addAttr方法）
   * @param {string} key
   * @returns {string}
   */
  getAttr(key:string):string{
    let data = this.datas.find((data:any):boolean=>{
              return data.name == key;
            });
    return data.value;
  }

  /**
   * 获取form表单对象（对应Sowrd中的addForm方法）
   * @param {string} key
   * @returns {any}
   */
  getForm(key?:string):any{
    let data = this.datas.find((data:any):boolean=>{
      return (key==null || data.name == key) && data.sword == "SwordForm";
    });
    return data.data;
  }

  /**
   * 获取table-list对象（对应Sowrd中的addTable方法）
   * @param {string} key
   * @returns {any[]}
   */
  getTableList(key?:string):any[] {
    let data = this.datas.find((data:any):boolean=>{
      return (key==null || data.name == key) && data.sword == "SwordGrid";
    });
    return data.trs;
  }

  /**
   * 获取列表对象（对应Sword中的addJSTL方法）
   * @param {string} key
   * @returns {any[]}
   */
  getDataList(key:string):any[] {
    let data = this.datas.find((data:any):boolean=>{
      return (data.name == key);
    });
    return data.data;
  }

  /**
   * 获取字典项信息（对应Sword中的addListWithDataName方法）
   * @param {string} dataName
   * @returns {any[]}
   */
  getDictList(dataName:string):any[]{
    let data = this.datas.find((data:any):boolean=>{
      return (data.dataName == dataName);
    });
    return data.data;
  }
}
